package alertWindow;

import org.junit.jupiter.api.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.Select;

// 弹窗功能的测试
public class AlertWindowTest {
    ChromeDriver driver = new ChromeDriver();

    public void test() {
        // 切换到弹窗
        Alert alert = driver.switchTo().alert();
        // 如果是确认弹窗
        alert.accept();
        // 如果是想要取消
        alert.dismiss();
        // 如果是输入内容的弹窗
        alert.sendKeys("content");

        // 如果是选择框
        // 首先要获取选择框
        WebElement elem = driver.findElement(By.cssSelector("selector"));
        // 然后打开选择框
        Select select = new Select(elem);
        // 然后在选择框中，有三种选择元素的方法
        // 1. 根据文本来选择
        select.selectByVisibleText("可见的文本");
        // 2. 根据属性来选择
        select.selectByValue("属性");
        // 3. 根据序号来选择 （从 0 开始）
        select.selectByIndex(0);
    }

    // 弹窗
    @Test
    public void alert() throws InterruptedException {
        driver.get("file:///D:/MyJavaCode/Typora%E7%AC%94%E8%AE%B0/%E6%B5%8B%E5%BC%80/selenium-html/alert.html#");
        // 点击弹窗
        driver.findElement(By.cssSelector("#tooltip")).click();
        // 切换到弹窗
        Alert alert = driver.switchTo().alert();
        alert.accept();

        driver.quit();
    }

    // 确认按钮
    @Test
    public void confirm() throws InterruptedException {
        driver.get("file:///D:/MyJavaCode/Typora%E7%AC%94%E8%AE%B0/%E6%B5%8B%E5%BC%80/selenium-html/confirm.html");
        driver.findElement(By.cssSelector("body > input[type=button]")).click();

        // 切换到窗口
        Alert alert = driver.switchTo().alert();
//        alert.accept(); // 按确认
        alert.dismiss();  // 按取消

        driver.quit();
    }

    // 输入框
    @Test
    public void prompt() throws InterruptedException {
        driver.get("file:///D:/MyJavaCode/Typora%E7%AC%94%E8%AE%B0/%E6%B5%8B%E5%BC%80/selenium-html/Prompt.html");
        driver.findElement(By.cssSelector("body > input[type=button]")).click();

        Alert alert = driver.switchTo().alert();
        alert.sendKeys("I'm a piece of shit");
        alert.accept();  // 点击确认

        driver.quit();
    }

    // 按选择框
    @Test
    public void select() throws InterruptedException {
        driver.get("file:///D:/MyJavaCode/Typora%E7%AC%94%E8%AE%B0/%E6%B5%8B%E5%BC%80/selenium-html/select.html");

        WebElement elem = driver.findElement(By.cssSelector("#ShippingMethod"));

        // 获取选择框
        Select select = new Select(elem);

        // 1. 然后根据属性选择
         select.selectByValue("11.61");
        // 2. 根据文本值
         select.selectByVisibleText("UPS Next Day Air Saver ==> $11.61");
        // 3. 根据序号, 从 0 开始
        select.selectByIndex(1);

        driver.quit();
    }
}
